A Live Strategy Developed by Judge Research¶

The statistics below come from the first systematic strategy developed with Judge Research's software stack. We are currently working on the code base needed to go live with test capital.

The strategy is a long-short strategy that holds positions in BTC & ETH spot & perps for time periods of 15 minutes - 1 hour. It is designed to have close to zero correlation with the market over the long run.

Figures are refreshed on a daily basis, with enough delay they cannot be used by others. All the data below comes from after the models were fit & the strategy designed. Slippage + fees are assumed to be 17.5 basis points.

Loading BokehJS ...
Out[10]:
Start End Duration Exposure n Pos. Mean Hold Time Returns Summed Cumulative Annualized Buy & Hold Sharpe Sortino Win % W/Out Slip. Max Drawdown M.D. Duration
2022-11-17 06:45 2022-12-21 03:00 33 days 20:15 6.96% 167 0 days 00:20 23.71% 25.48% 655.94% 0.16% 5.91 6.28 57.49% 76.65% -3.1% 10 days 02:10
Out[12]:
Row(
id = '1638', …)
align = 'start',
aspect_ratio = None,
background = None,
children = [GridBox(id='1635', ...), ToolbarBox(id='1637', ...)],
cols = 'auto',
css_classes = [],
disabled = False,
height = None,
height_policy = 'auto',
js_event_callbacks = {},
js_property_callbacks = {},
margin = (0, 0, 0, 0),
max_height = None,
max_width = None,
min_height = None,
min_width = None,
name = None,
sizing_mode = 'stretch_width',
spacing = 0,
subscribed_events = [],
syncable = True,
tags = [],
visible = True,
width = None,
width_policy = 'auto')

Distribution of Profitability¶

  • If a strategy is profitable only with very particular settings, it is more likely to be overfit. Ideally one would see a smooth, concave distribution over a space of reasonable parameter values.

  • Rotate the figure and zoom in to explore the distribution of our strategy's profitability over where we set our take-action thresholds.

  • Notice that the profitability of the strategy presented here is much lower than could be achieved by other combinations of thresholds.

Backtest.optimize:   0%|          | 0/75 [00:00<?, ?it/s]
In [16]:
fc.tail
Out[16]:
<bound method NDFrame.tail of                           btc                 eth                link  \
                      ytfB_fc  ytfB2_fc   ytfB_fc  ytfB2_fc   ytfB_fc   
StartDate                                                               
2022-11-17 06:45:00  0.088321  0.055905  0.055587  0.048248  0.052558   
2022-11-17 07:00:00  0.186299  0.148108  0.247747  0.158724  0.282590   
2022-11-17 07:15:00  0.068082  0.050843  0.145483  0.108067  0.088881   
2022-11-17 07:30:00  0.078548  0.050282  0.079213  0.064611  0.088216   
2022-11-17 07:45:00  0.024205 -0.006565  0.013812  0.008687  0.046650   
...                       ...       ...       ...       ...       ...   
2022-12-21 02:00:00 -0.008844 -0.030668 -0.011884 -0.032116  0.025345   
2022-12-21 02:15:00 -0.143385 -0.115902 -0.124143 -0.095269 -0.051784   
2022-12-21 02:30:00 -0.061301 -0.059095 -0.061096 -0.046150 -0.058632   
2022-12-21 02:45:00  0.053876  0.042690  0.057625  0.054329  0.045410   
2022-12-21 03:00:00  0.285056  0.186473  0.312462  0.182453  0.340116   

                               
                     ytfB2_fc  
StartDate                      
2022-11-17 06:45:00  0.038881  
2022-11-17 07:00:00  0.184063  
2022-11-17 07:15:00  0.068403  
2022-11-17 07:30:00  0.051960  
2022-11-17 07:45:00  0.010703  
...                       ...  
2022-12-21 02:00:00 -0.021244  
2022-12-21 02:15:00 -0.054353  
2022-12-21 02:30:00 -0.039686  
2022-12-21 02:45:00  0.048614  
2022-12-21 03:00:00  0.201864  

[3245 rows x 6 columns]>